package com.android.aircondition.view;

import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.SeekBar;

public class SlideBar extends SeekBar{
	 private int oHeight = 100;
	    private int oWidth = 30; 
	    private int oProgress = -1;
	    private int oOffset = -1;; 
	    private float xPos = -1;
	    private float yPos = -1; 
	    private int top = -1;
	    private int bottom = -1;
	    private int left = -1;
	    private int right = -1; 
	    
	    public SlideBar(Context context) { 
	            
	            super(context); 
	    } 
	    
	    public SlideBar(Context context, AttributeSet attrs) {
	            
	            super(context, attrs); 
	            oOffset = this.getThumbOffset(); 
	            oProgress = this.getProgress(); 
	    } 
	    
	    public SlideBar(Context context, AttributeSet attrs, int defStyle) { 
	            
	            super(context, attrs, defStyle); 
	    } 
	    
	    protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
	            
	            int height = View.MeasureSpec.getSize(heightMeasureSpec); 
	            oHeight = height; 
	            this.setMeasuredDimension(oWidth, oHeight); 
	    } 
	    
	    protected void onSizeChanged(int w, int h, int oldw, int oldh) { 
	            
	            super.onSizeChanged(h, w, oldw, oldh); 
	    } 
	    
//	    设置layout
	    protected void onLayout(boolean changed, int l, int t, int r, int b) { 
	            
	            super.onLayout(changed, l, t, r, b); 
	            left = l; 
	            right = r; 
	            top = t; 
	            bottom = b; 
	    } 
	    
//	    画出滚动条
	    protected void onDraw(Canvas c) { 
	            // 旋转
	            c.rotate(90); 
	            //控制左右位置
	            c.translate(0,-30); 
	            super.onDraw(c); 
	    } 
	    
	    public boolean onTouchEvent(MotionEvent event) {
	            
	            xPos = event.getX(); 
	            yPos = event.getY(); 
	            float progress = 1-(yPos-this.getTop())/(this.getBottom()- this.getTop()); 
	            oOffset = this.getThumbOffset(); 
	            oProgress = this.getProgress(); 
	            Log.d("offset" + System.nanoTime(), new Integer(oOffset).toString()); 
	            Log.d("progress" + System.nanoTime(), new Integer(oProgress).toString()); 
	            float offset; 
	            offset = progress * (this.getBottom() - this.getTop()); 
	            this.setThumbOffset((int)offset); 
	            Log.d("offset_postsetprogress" + System.nanoTime(), new Integer(oOffset).toString()); 
	            Log.d("progress_postsetprogress" + System.nanoTime(), new Integer(oProgress).toString()); 
//	            this.setProgress((int)(100*event.getY()/this.getBottom())); 
	            this.setProgress((int)(100 * progress)); 
	            return true; 
	    } 
}
